package io;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;

/**
 * @projectName: java-sample
 * @description:
 * @author: Adam
 * @create: 2019-12-13 13:43
 **/

public class PrintStreamTest {

    /**
     * 只要流的构造器参数不是一个物理节点，而是已经存在的流，那么这种流就一定是处理流,而所有节点流都是直接以物理IO节点作为构造器参数的
     * 使用处理流的优势：
     * ①对于开发人员来说，使用处理流进行输入/输出操作更简单；
     * ②使用处理流的执行效率更高
     * 通常如果我们需要输出文本内容，都应该将输出流包装成PrintStream后进行输出
     */
    public static void main(String[] args) throws IOException {

        FileOutputStream fos = new FileOutputStream("D:\\newFile.txt");
        //处理流
        PrintStream ps = new PrintStream(fos);
        try {
            //使用printStream执行输出
            ps.println("普通字符串");
            //直接使用PrintStream输出对象
            ps.println(new PrintStreamTest());
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //通常只需要关闭最上层的处理流即可，关闭最上层的处理流是，系统会自动关闭被该处理流包装的节点流
            ps.close();
        }
    }

}
